package week2;

import base.Node;

import java.util.ArrayList;
import java.util.List;

/**
 *
 * 429. N 叉树的层序遍历
 * https://leetcode-cn.com/problems/n-ary-tree-level-order-traversal/
 *
 *
 *
 * 执行结果：  通过  显示详情
 *
 * 添加备注
 * 执行用时：0 ms, 在所有 Java 提交中击败了100.00% 的用户
 * 内存消耗：39.2 MB, 在所有 Java 提交中击败了63.93% 的用户
 *
 *
 */
public class Week2NAryTreeLevelOrderTraversal {

    public List<List<Integer>> levelOrder(Node root) {
        List<List<Integer>> levelOrderList = new ArrayList<List<Integer>>();
        levelOrderList(root, 0, levelOrderList);
        return levelOrderList;
    }

    public void levelOrderList(Node node, int level, List<List<Integer>> list) {
        if(node == null) {
            return;
        }
        if(list.size() <= level) {
            list.add(new ArrayList<Integer>());
        }
        list.get(level).add(node.val);
        if(node.children != null) {
            for(Node child : node.children) {
                levelOrderList(child, level + 1, list);
            }
        }
    }




}
